In a data processing system with storage hierarchy, selected lines of data in main storage are copied in a high speed buffer, often called a cache, for fast access by a processor. Whenever the processor requests data, or needs an instruction to execute, the system first checks the cache to determine whether the data or instruction is available in the cache. If it is, the data/instruction is quickly provided to the processor. If it is not available, the data/instruction is retrieved more slowly from main memory. A portion of the untranslated logical address in each processor request is often used to directly access the cache directory, rather than use a translated absolute address, because system performance is significantly reduced by waiting for the translated address of the data/instruction. A representative cache system is described in commonly owned U.S. Pat. No. 5,113,508, to Groves et al, and hereby incorporated by reference and "IBM RISC SYSTEM/6000 Technology", First Edition, 1990, IBM order number SA23-2619, and hereby incorporated by reference as background material.
Cache synonyms are created by the use of untranslated logical addresses to access the cache. A given data/instruction item may exist in multiple locations within the cache and can be accessed by more than one name. As described in U.S. Pat. No. 4,400,770 and U.S. Pat. No. 4,797,814, both incorporated here by reference, synonyms provide flexibility when multiple processes may be accessing a given cache line with dissimilar logical (virtual) addresses, or the ability exists to access a cache line with either a logical (virtual) or a physical (real) address at any given instant.
As a result of such synonym usage, various schemes such as those described by Brenza, J. G., in the IBM Technical Disclosure Bulletin, June 1991, pp 377-381, and hereby incorporated by reference as background material, were designed to avoid the possibility of cache synonyms having entries to dissimilar cache line locations.
However, the prior art has not addressed the need or desire to efficiently copy or move data, within a cache, from one cache line to another. This capability would improve system throughput in the management of cache by eliminating the requirement to execute multiple load/stores from main memory to copy or move data, creating duplicate entries in the cache and creating extra traffic between the cache and main memory.
Nor has the prior art addressed the ability to easily rename a cache line in a cache directory. This ability would be desirable to logically copy data items, a cache line at a time, while only using one cache line.